

package com.wedu.modules.sys.redis;


import com.wedu.common.utils.RedisKeys;
import com.wedu.common.utils.RedisUtils;
import com.wedu.modules.sys.entity.SysConfigEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * 系统配置Redis
 *
 * @author wedu
 */
//标记Spring容器中的Bean，使类被Spring管理
@Component
public class SysConfigRedis {
    //导入依赖的缓存工具类
    @Autowired
    private RedisUtils redisUtils;
    // 保存或更新配置信息的方法
    public void saveOrUpdate(SysConfigEntity config) {
        //// 判断传入的 config 是否为空，如果为空则直接返回，不进行任何操作
        if(config == null){
            return ;
        }
        // 获取Redis（日志型的数据库用于缓存）存储的key，
        // 使用 RedisKeys （用于缓存）的工具类通过 config.getParamKey() 获取配置的参数 key
        String key = RedisKeys.getSysConfigKey(config.getParamKey());
        // 将 config 对象存储到 Redis 中，key 为上面生成的 key，value 为 config 对象
        redisUtils.set(key, config);
    }
    //删除配置的方法
    public void delete(String configKey) {
        //根据具体的configKey获取缓存中存储的key
        String key = RedisKeys.getSysConfigKey(configKey);
        //清除对应key的缓存
        redisUtils.delete(key);
    }
    //获取对应key的配置信息
    public SysConfigEntity get(String configKey){
        //根据具体的configKey获取缓存中存储的key
        String key = RedisKeys.getSysConfigKey(configKey);
        //从 缓存 中获取对应的值，将值反序列化为 SysConfigEntity 对象并返回
        return redisUtils.get(key, SysConfigEntity.class);
    }
}
